MuleSoft Accelerator for Retail icon

MuleSoft Accelerator for Retail

(0 reviews)

OFBiz setup and configuration

Apache OFBiz is an OpenSource OMS solution.

Prerequisites

The following components are required in order to set up and configure OFBiz:

  • JDK
  • Gradle
  • A base installation of OFBiz

OFBiz Configuration

The following steps are required in order to configure OFBiz for use by the Accelerator assets.

  1. It is recommended to create a separate service account for integration purposes

    • e.g., gradle loadAdminUserLogin -PuserLoginId=integrationadmin
  2. Edit the framework/security/config/security.properties file and add the OFBiz server hostname to the host-headers-allowed setting

  3. Services must be exported in order for the Mule applications to be able to invoke them. These are defined in a services xml file under the servicedef folder, organized by domain. For each of the following services, add the attribute export="true" to the service definition tag (all file paths are relative to $OFBIZ_HOME/applications):

PathObject
party/servicedef/services.xmlcreatePartyPostalAddress
quickCreateCustomer
createPerson
updatePerson
createUpdatePartyEmailAddress
createUpdatePartyTeleco
Number
createUpdatePartyPostalAddress
findPartiesById
party/servicedef/services_view.xmlgetPerson
getPartiesFromExternalId
getPartiesFromExactEmail
getPartyContactMechValueMaps
accounting/servicedef/services_paymentmethod.xmlcreateCreditCard
order/servicedef/services.xmladdOrderItemShipGroup
changeOrderStatus
createOrderPaymentPreference
findOrders
storeOrder
product/servicedef/services_shipment.xmlcreateShipment

The service names can be cross-referenced with the XML request templates under src/main/resources/ofbiz as well as a few of the Transform Message processors contained in the flows.

The Order, Party, and Product entities must be customized to support the order, customer, and product sync process, respectively. Here are the steps:

  1. Navigate to $OFBIZ_HOME/applications/datamodel/entitydef

  2. Make a backup copies of the order-entitymodel.xml, party-entitymodel.xml, and partyproduct-entitymodel.xml files

  3. Edit the order-entitymodel.xml file as follows:

    • Change the type of the externalId field in the OrderItem entity to "name" instead of "id"
    • Do the same for the externalId field in the OrderHeader entity
  4. Edit the party-entitymodel.xml file as follows:

    • Change the type of the externalId field in the Party entity to "name" instead of "id"
    • Add the following field to the Person entity: <field name="customerNumber" type="name"></field>
  5. Edit the product-entitymodel.xml file as follows:

    • Add the following field to the Product entity: <field name="externalId" type="name"></field>
  6. Save all the files and restart OFBiz if it's already running

Starting OFBiz

  1. Change directory to the OFBiz installation root

  2. Run nohup gradle ofbiz &

    • You can add the tail -f nohup.out to see the console output
  3. Open a browser and navigate to <ofbizhost>:8443/accounting/control/main

  4. Use the default administrative username admin on the account

Stopping OFBiz

  1. Change directory to the OFBiz installation root

  2. Run gradle 'ofbiz --shutdown'

    • Wait for it to shut down cleanly

Troubleshooting

If you see column-constraint errors it is possible the OrderItem.external_id and/or Party.external_id column did not get altered properly. To correct this, install the Apache Derby tools (e.g., sudo apt-get install derby-tools) and run the following commands. Be sure to shut down OFBiz first:

$ ij
ij> connect 'jdbc:derby:/opt/ofbiz/runtime/data/derby/ofbiz' user 'ofbiz' password 'ofbiz';
ij> alter table Party alter column external_Id set data type varchar(100);
ij> alter table Order_Item alter column external_Id set data type varchar(100);
ij> alter table Order_Header alter column external_Id set data type varchar(100);
ij> exit;

Restart OFBiz to pick up the change.


Reviews

TypeCustom
OrganizationMulesoft Inc.
Published by
MuleSoft Solutions
Published onSep 27, 2021
Contact nameMuleSoft Solutions
Contact emailsolutions-questions@mulesoft.com
Asset overview

Asset versions for 2.2.x

Asset versions
VersionActions
2.2.1
2.2.0